Power management difficulties may occur among an audio controller, an audio codec, a graphic software driver, an audio software driver, and an operating system. For example, when an audio/video receiver is connected to a platform, the processing of audio sent to the digital ports (e.g., HDMI/DP) may occur through an integrated audio codec. The audio driver may control the codec programming and functionality based on the audio application launched in the operating system such that when an HDMI/DP audio endpoint is plugged (or the like), the graphics driver may set a presence detect event in the integrated codec which may wake up the audio driver.
Furthermore, based on receiver capabilities, the graphics driver and the audio driver program the integrated codec registers. Some registers (e.g., verbs) may be programmed by the audio driver. Such programming may be characterized as a codec enumeration process. For example, the audio application may load the memory with audio data and the audio driver may initiate the audio data transfer to the integrated codec through the audio controller.
In some contexts, display hardware logic may be distributed in multiple power wells and, during display low power states, some of the logic may be turned off. For example, audio codec hardware logic may be in the power well that turns off when HDMI/DP external ports are not used for display or there is another lower power state where the audio codec is not used for playback. In such cases, the audio codec register values are lost and the audio driver does not re-program the enumeration registers. In such examples, when the display comes back up from the low power state, the user loses the audio codec from the GUI and will not be able to playback audio. For example, enumeration may occur again only on hard reset.
Current techniques to address such problems may include keeping both the audio controller and the audio codec powered-on. Such techniques avoid losing register contents in the audio codec because the audio codec is not allowed to power off. □However, such techniques may be suboptimal with respect to power savings, which is undesirable.
It may be advantageous to provide low power modes without loss of the audio codec. It is with respect to these and other considerations that the present improvements are needed.